package com.tanhua.model.vo;

import com.tanhua.model.db.Questionnaire;
import com.tanhua.model.db.Report;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;

import java.util.List;

/**
 * @Version 1.0
 * @Author aao
 * @Date 2022/2/20 11:51
 * @Description 问卷表返回结果
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class QuestionnaireVo {

    private String id; //问卷编号
    private String name; //问卷名称
    private String cover; //封面
    private String level; //级别
    private Integer star; //星别（例如：2颗星，3颗星，5颗星）

    private List<UserQuestionVo> questions; //试题列表
    private Integer isLock = 1; //是否锁住（0解锁，1锁住）
    private String reportId; //最新报告id

    /**
     * 在vo对象中，补充一个工具方法，封装转化过程
     */
    public static QuestionnaireVo init(Questionnaire questionnaire, Report report, List<UserQuestionVo> questions) {
        String level = null;
        Integer questionnaireLevel = questionnaire.getLevel();
        switch (questionnaireLevel) {
            case 1:
                level = "初级";
                break;
            case 2:
                level = "中级";
                break;
            case 3:
                level = "高级";
                break;
            default:break;
        }

        QuestionnaireVo vo = new QuestionnaireVo();
        BeanUtils.copyProperties(questionnaire,vo);
        vo.setId(questionnaire.getId().toString());
        vo.setLevel(level);
        //设置试题列表
        vo.setQuestions(questions);
        //设置锁状态 1.初级的锁状态设置为0
        if (questionnaire.getLevel() == 1 && questionnaire.getStar() == 2) {
            vo.setIsLock(0);
        }
        //copy问卷属性
        if (report != null) {
            //设置最新报告id
            vo.setReportId(report.getId().toString());
        }
        return vo;
    }
}
